// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()
const _ = db.command


// 云函数入口函数
exports.main = async (event, context) => {
  // collection 上的 get 方法会返回一个 Promise，因此云函数会在数据库异步取完数据后返回结果
  console.log(event)
  let longitude = Number(event.longitude) || 0
  let latitude = Number(event.latitude) || 0
  let stations = await db.collection('stations').where({
    point: _.geoNear({
      geometry: db.Geo.Point(longitude, latitude),
      minDistance: 0,
      maxDistance: 3000,
    })
  }).get()

  //查出本地官方油价
  let state_price = await db.collection('oil_prices').where({
    station_id: 'default'
  }).get()

    for (let item of stations.data) {
      let id = item._id;
      //查询油站油价
      let _price = await db.collection('oil_prices').where({
        station_id: id
      }).orderBy('created_time', 'desc').limit(1).get()

      if (_price.data.length > 0) {
        item.oil_price = _price.data[0] //唯一的 一条
      } else {
        item.oil_price = state_price.data[0] //唯一的 一条
      }
    } 

    return stations
  
}